//package org.hadoop.hive.Intercepetor;
//
//import org.hadoop.hive.Utils.JwtUtil;
//import org.hadoop.hive.Utils.ThreadLocalUtil;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.data.redis.core.ValueOperations;
//import org.springframework.web.servlet.HandlerInterceptor;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.util.Map;
//
///**
// * 作者：Lapper
// * QQ656277239
// * vx:JavaAdmin123
// */
//public class loginInterceptor implements HandlerInterceptor {
//@Autowired
//RedisTemplate  RedisTemplate;
//    @Override
//    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//       try {
//           if (request.getMethod().equals("OPTIONS")) {
//               response.setStatus(HttpServletResponse.SC_OK);
//               return true;
//               // 如果不是，我们就把token拿到，用来做判断
//           }
//           String token = request.getHeader("Authorization");
//           // 从Redis中获取存储的token
//           ValueOperations<String, String> ops = (ValueOperations<String, String>) RedisTemplate.opsForValue().get("token");
//           String redisToken = ops.get("token");
//
//           // 判断token是否有效
//           if (redisToken == null || !redisToken.equals(token)) {
//               throw new RuntimeException("Token is invalid or expired");
//           }
//           Map<String, Object> payload = JwtUtil.praseToken(token);
//           // 从有效载荷中获取用户信息并存储到线程本地变量
//           Map<String, Object> userInfo = (Map<String, Object>) payload.get("subjects");
//           ThreadLocalUtil.set(userInfo);
//           return true;
//       }catch (Exception e){
//
//           return false;
//       }
//
//
//    }
//}
